/*
 * @Author: your name
 * @Date: 2021-08-31 19:44:20
 * @LastEditTime: 2021-09-02 20:29:03
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \briup\5-javascript\day07\9-重写数组map.js
 */

//重写map  一一映射 返回新数组

/*foo相当于function foo(value) {
   return value * 2;
}*/
Array.prototype.myMap = function(foo) {
    //定义一个空数组承接
    var result = [];
    this.forEach(function(v, k, arr) {
        var r = foo(v, k, arr);
        //value=(v,k,r)=r
        //在这不能return 因为多次遍历并传输到result里
        result.push(r);
    });
    //要遍历完返回新数组
    return result;
}

//定义一个数组
var arr = [100, 200, 300, 400];
//执行函数条件
var r1 = arr.myMap(foo);
//判断条件
function foo(value) {
    return value * 2;
}
//打印结果
console.log(r1);